package com.ms.controller;

import com.ms.common.Result;
import com.ms.entity.QuestionLevel;
import com.ms.service.QuestionLevelService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/api/questionLevel")
public class QuestionLevelController {

    @Resource
    private QuestionLevelService questionLevelService;

    @PostMapping
    public Result<?> save(@RequestBody QuestionLevel questionLevel) {
        return Result.success(questionLevelService.save(questionLevel));
    }


    /**
     * 更新题目的难度等级信息
     * @param questionLevel 包含题目的难度等级信息的对象
     * @return 返回操作结果，如果成功更新，则返回成功的状态和更新后的对象
     */
    @PutMapping
    public Result<?> update(@RequestBody QuestionLevel questionLevel) {
        return Result.success(questionLevelService.updateById(questionLevel));
    }


    /**
     * 根据ID删除题目的难度等级信息
     * @param id 需要删除的题目难度等级的ID
     * @return 返回操作结果，如果成功删除，则返回成功状态
     */
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        questionLevelService.removeById(id);
        return Result.success();
    }


    /**
     * 根据ID查找题目的难度等级信息
     * @param id 需要查找的题目难度等级的ID
     * @return 返回操作结果，如果找到，则返回成功的状态和对应的题目难度等级对象
     */
    @GetMapping("/{id}")
    public Result<QuestionLevel> findById(@PathVariable Long id) {
        return Result.success(questionLevelService.getById(id));
    }


    /**
     * 查找所有题目的难度等级信息
     * @return 返回操作结果，如果找到，则返回成功的状态和所有题目难度等级的列表
     */
    @GetMapping
    public Result<List<QuestionLevel>> findAll() {
        return Result.success(questionLevelService.list());
    }



}